home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / geos-archive / GEOS-D64 / GEOS Mega ASM (19xx)(-).d64 / list8-1.text < prev    next >
Text File  |  2019-04-13  |  7KB  |  328 lines

  1. if .p
  2.      t     "TopSym"
  3.      t     "TopMac"
  4. endif
  5.      n     "VLIR2-ModRes.obj"
  6.      c     "VLIR2-Bsp.  V1.0"
  7.      a     "DPT Knupe & Bonse"
  8.      f     APPLICATION
  9.      z     0     ; C128: nur 40 Zeichen
  10.      o     APP_RAM     ; Anfang bei $400
  11.      p     Start
  12.  
  13. :ModAnz     =     4
  14. :Start     lda     r0L
  15.      pha
  16.      jsr     GetVLIRTable
  17.      pla
  18.      and     #%01000000
  19.      beq     :10
  20.      jsr     drucken
  21.      jmp     EnterDeskTop
  22. ::10     jsr     DA_Init
  23.      lda     #2
  24.      jsr     SetPattern
  25.      jsr     i_Rectangle
  26.      b     0,199
  27.      w     0,319
  28.      LoadW     r0,Men}Tab
  29.      jsr     DoMenu
  30.      LoadW     r0,IconTab
  31.      jsr     DoIcons
  32.      jsr     |ffnen
  33.      jsr     DispEntry
  34.      rts
  35.  
  36. :Men}Tab     b 0,14
  37.      w 0,78
  38.      b 3
  39.  
  40.      w geosText
  41.      b SUB_MENU
  42.      w geosMen}
  43.  
  44.      w DateiText
  45.      b SUB_MENU
  46.      w DateiMen}
  47.  
  48.      w EditText
  49.      b SUB_MENU
  50.      w EditMen}
  51.  
  52. :geosText     b "geos",0
  53. :DateiText     b "Datei",0
  54. :EditText     b "Edit",0
  55. :DateiMen}     b 15,15+4 * 14+1
  56.      w 28,106
  57.      b VERTICAL ! 4
  58.  
  59.      w Aktl_Text
  60.      b MENU_ACTION
  61.      w Aktualisieren
  62.  
  63.      w Wdhst_Text
  64.      b MENU_ACTION
  65.      w Wiederherstellen
  66.  
  67.      w DruckenText
  68.      b MENU_ACTION
  69.      w drucken
  70.  
  71.      w EndeText
  72.      b MENU_ACTION
  73.      w verlassen
  74.  
  75. :Wdhst_Text     b     "Wiederherstellen",NULL
  76. :Aktl_Text     b     "Aktualisieren",NULL
  77. :DruckenText     b     "Drucken",NULL
  78. :EndeText     b     "Verlassen",NULL
  79. :infoText     b     "VLIR-Ex. Info",NULL
  80.  
  81. :EditMen}     b     15,15+3*14+1
  82.      w     55,128
  83.      b     VERTICAL ! 3
  84.  
  85.      w     [ndernText
  86.      b     MENU_ACTION
  87.      w     [ndern
  88.  
  89.      w     L|schenText
  90.      b     MENU_ACTION
  91.      w     L|schen
  92.  
  93.      w     Anf}genText
  94.      b     MENU_ACTION
  95.      w     Anf}gen
  96.  
  97. :[ndernText     b     "Eintrag {ndern",NULL
  98. :L|schenText     b     "Eintrag l|schen",NULL
  99. :Anf}genText     b     "Eintrag anf}gen",NULL
  100.  
  101.  
  102. :IconTab     b 2          ; zwei Icons
  103.      b 0,0,0     ; Maus nicht setzen
  104.  
  105.      w     Pfeillinks     ; BitMap
  106.      b     5,150          ; Koordinaten
  107.      b     PfLiBr,PfLiH|          ; Gr|~e
  108.      w     Zur}ck          ; Adresse
  109.  
  110.      w     Pfeilrechts     ; BitMap
  111.      b     34,150          ; Koordinaten
  112.      b     PfReBr,PfReH|          ; Gr|~e
  113.      w     Weiter          ; Adresse
  114. :geosMen}
  115. .geosoben     b 15
  116. .geosunten     b 0          ; wird berechnet!
  117.      w 0,80
  118. .geosanz     b 0          ; wird eingesetzt!
  119.  
  120.      w infoText
  121.      b MENU_ACTION
  122.      w InfoRoutine
  123.  
  124.      w DASpace
  125.      b MENU_ACTION
  126.      w DA_Call
  127.  
  128.      w DASpace+17
  129.      b MENU_ACTION
  130.      w DA_Call
  131.  
  132.      w DASpace + 2*17
  133.      b MENU_ACTION
  134.      w DA_Call
  135.  
  136.      w DASpace + 3*17
  137.      b MENU_ACTION
  138.      w DA_Call
  139.  
  140.      w DASpace + 4*17
  141.      b MENU_ACTION
  142.      w DA_Call
  143.  
  144.      w DASpace + 5*17
  145.      b MENU_ACTION
  146.      w DA_Call
  147.  
  148.      w DASpace + 6*17
  149.      b MENU_ACTION
  150.      w DA_Call
  151.  
  152.      w DASpace + 7*17
  153.      b MENU_ACTION
  154.      w DA_Call
  155.  
  156. .DASpace     s 137
  157. :AppClass     b "VLIR2-Bsp.  V1.0",0
  158. :AppName     s 18
  159. :GetVLIRTable
  160.      LoadW     r6,AppName
  161.      LoadB     r7L,6
  162.      LoadB     r7H,1
  163.      LoadW     r10,AppClass
  164.      jsr     FindFTypes     ; "VLIR-Bps." suchen
  165.      txa
  166.      beq     :10
  167.      jmp     error
  168. ::10     LoadW     r0,AppName
  169.      jsr     OpenRecordFile      ; VLIR-File |ffnen
  170.      txa
  171.      beq     :20
  172.      jmp     error
  173. ::20     jsr     i_MoveData     ; und auslesen:
  174.      w     fileHeader+4     ; Anfangsbereich
  175.      w     AppIndex     ; Zielbereich
  176.      w     ModAnz*2     ; Anzahl der Bytes
  177.      rts
  178. :aktl_Mod     b     0
  179. :GetModule     ; x: Modul-Nummer
  180.      cmp     aktl_Mod
  181.      beq     :10
  182.      sta     aktl_Mod
  183.      txa          ; Register retten
  184.      pha
  185.      tya
  186.      pha
  187.      ldx     aktl_Mod
  188.      dex
  189.      txa
  190.      asl
  191.      tax
  192.      lda     AppIndex,x
  193.      sta     r1L
  194.      lda     AppIndex+1,x
  195.      sta     r1H
  196.      LoadW     r7,ModStart
  197.      LoadW     r2,$5fff-ModStart
  198.      jsr     ReadFile
  199.           ; Evtl. Fehlerbehandlung einf}gen
  200.      pla
  201.      tay
  202.      pla
  203.      tax
  204. ::10     rts
  205. .VLIRName     b     "VLIR-Telefon",NULL
  206.  
  207. ; aktueller Eintrag:
  208. .A_Name     s      31     ; 30 Daten- und ein NULL-Byte
  209. .A_Nummer     s      21     ; 20 Daten- und ein NULL-Byte
  210.  
  211. .DispEntry          ; Eintrag darstellen
  212.      lda     #0     ; Bildschirm l|schen
  213.      jsr     SetPattern
  214.      jsr     i_Rectangle
  215.      b     16,120
  216.      w     0,319
  217.      jsr     i_PutString
  218.      w     120
  219.      b     25
  220.      b     "Nummer des Datensatzes:",NULL
  221.      MoveB     curRecord,r0L     ; Nummer des Datensatzes
  222.      LoadB     r0H,0     ; ausgeben
  223.      LoadW     r11,250
  224.      LoadB     r1H,25
  225.      lda     #%11000000
  226.      jsr     PutDecimal
  227.      jsr     i_PutString
  228.      w     10
  229.      b     50
  230.      b     "Name:",NULL
  231.      jsr     i_PutString
  232.      w     10
  233.      b     80
  234.      b     "Tel.-Nummer:",NULL
  235.      LoadW     r11,80     ; Name bei 80/50
  236.      LoadB     r1H,50     ; darstellen
  237.      LoadW     r0,A_Name
  238.      jsr     PutString
  239.      LoadW     r11,80     ; Telefonnummer bei 80/80
  240.      LoadB     r1H,80     ; darstellen
  241.      LoadW     r0,A_Nummer
  242.      jmp     PutString
  243. .error     LoadW     r0,:db
  244.      jsr     DoDlgBox
  245.      jmp     EnterDeskTop
  246.  
  247. ::db     b     $81     ; Standart-Dialogbox
  248.      b     DBTXTSTR,$10,$10
  249.      w     :t1
  250.      b     DBTXTSTR,$10,$20
  251.      w     :t2
  252.      b     CANCEL,17,72
  253.      b     NULL
  254.  
  255. ::t1     b     "Es ist ein Diskettenfehler",NULL
  256. ::t2     b     "aufgetreten!",NULL
  257.  
  258. :AppIndex     s     ModAnz*2
  259. :Pfeilrechts:PfReBr     =.x
  260. :PfReH|     =.y
  261. :Pfeillinks:PfLiBr     =.x
  262. :PfLiH|     =.y
  263.  
  264.  
  265. :InfoRoutine
  266.      lda     #1     ; Modul #1
  267.      jsr     GetModule
  268.      jmp     ModStart     ; erster Einsprung
  269. :DA_Init
  270.      lda     #2     ; Modul #2     
  271.      jsr     GetModule
  272.      jmp     ModStart
  273. :DA_Call
  274.      tax          ; Nummer merken
  275.      lda     #2     ; Modul #2     
  276.      jsr     GetModule
  277.      jmp     ModStart+3     ; 2. Einsprung
  278.  
  279. :Aktualisieren
  280.      lda     #3     ; Modul #3
  281.      jsr     GetModule
  282.      jsr     ModStart     ; 1. Einsprung
  283.      jmp     GotoFirstMenu
  284.  
  285. :Wiederherstellen
  286.      jsr     GotoFirstMenu
  287.      lda     #3
  288.      jsr     GetModule
  289.      jsr     ModStart+3     ; 2. Einsprung
  290.      jmp     DispEntry
  291.  
  292. :verlassen
  293.      lda     #3
  294.      jsr     GetModule
  295.      jmp     ModStart+6     ; 3. Einpsrung
  296.  
  297. :|ffnen
  298.      lda     #03
  299.      jsr     GetModule
  300.      jmp     ModStart+9     ; 4. Einsprung
  301.  
  302. :drucken     lda     #03
  303.      jsr     GetModule
  304.      jsr     GotoFirstMenu
  305.      jmp     ModStart+12     ; 5. Einsprung
  306.  
  307. :[ndern     lda     #04     ; Modul #4
  308.      jsr     GetModule
  309.      jmp     ModStart     ; 1. Einsprung
  310.  
  311. :Anf}gen     lda     #04     ; Modul #4
  312.      jsr     GetModule
  313.      jmp     ModStart+3     ; 2. Einsprung
  314.  
  315. :L|schen     lda     #04     ; Modul #4
  316.      jsr     GetModule
  317.      jmp     ModStart+6     ; 3. Einsprung
  318.  
  319. :Weiter     lda     #04
  320.      jsr     GetModule
  321.      jmp     ModStart+9
  322.  
  323. :Zur}ck     lda     #04
  324.      jsr     GetModule
  325.      jmp     ModStart+12
  326.  
  327. .ModStart